Field of the Disclosure
The present disclosure relates generally to processing devices and, more particularly, to adaptive voltage scaling in processing devices.
Description of the Related Art
Processing devices such as central processing units (CPUs), graphics processing units (GPUs), and accelerated processing units (APUs) are characterized by an operating frequency. For example, a CPU in a personal desktop computer may operate at a frequency that is at least equal to a characteristic operating frequency, e.g., of 3.0 GHz. The processing device may be characterized on a tester during manufacturing to determine its maximum operating frequency within a predetermined power envelope and power supply voltage. Margins may then be added to account for tester uncertainty, power supply uncertainty, workload induced thermal or voltage variation, aging, random uncertainty, and other possible variations. For example, the voltage of the power supplied (i.e., the operating voltage) to the processing device may be set to a value that is high enough to ensure that the processing device continues to operate at or above its characteristic operating frequency in a worst-case scenario. However, adding the high margin to the voltage may not be necessary in typical operating scenarios and may waste power.
Dynamic on-die speed measurements are described by Charles Lefurgy, et. al., “Active Management of Timing Guardband to Save Energy in POWER7”, MICRO-44, Dec. 3-7, 2011. In this system, on-die critical path monitors are used to track the local variation of critical paths in a processing device during runtime. The speeds of the on-die critical path monitors are continuously monitored and compared against a target clock frequency. The operating frequency or the operating voltage supplied to the system can then be adjusted based on the comparison. However, the system requires at-speed signals to propagate through the processing device to a central performance controller that performs the comparison and implements the decision algorithm used to adjust the operating frequency or voltage. Furthermore, dynamic frequency adjustments cause frequency uncertainty, which can decrease overall performance because of increased latency and the potential for processor data to be unpredictably unavailable to external resources.